In 802.11 standard-based WLAN receivers, as in many other receiver systems, an important task is to be able to reliably detect the start of transmissions within a given time. For the case of the 802.11 b/g standard the preamble portion of the transmission consists of a BPSK signal, e.g. +/−1 at baseband, transmitted at 1 Msymbol/s, modulated with a Barker spreading sequence consisting of an 11-chip sequence of +/−1 transmitted at 11 Mchips/s. An example of the transmitted sequence and how it can be generated is shown in FIG. 1.
The use of the 11-chip Barker sequence as a spreading code typically forms the basis for detecting the presence or absence of such a signal. The received signal is passed into a correlator block, which matches the received signal against the known Barker pattern. Due to the properties of the Barker code, the output signal of the correlator block will exhibit a peak in amplitude as the last chip of each input symbol arrives. The peaks have the same sign as the transmitted BPSK sequence, and are spaced in time with the symbol spacing time. In the times between peaks, the output has a low value. The detection algorithm searches for the presence of these peaks.
In the presence of noise, the difference between the peaks and the valley level at the output of the correlator becomes harder to distinguish. In order to make a reliable detection decision, it is necessary to take the output of the correlator and perform an average or a summation, the two differ only by a constant scaling factor, at a fixed position over a number of symbol periods.
There are intermediate signal processing steps that can be performed. However, the detection result must still, in general, be calculated by a combination of the values at peak positions over a number of symbols.
The difficulty is therefore to be able to determine where these peak positions are in order to calculate the appropriate detection output. If the output is taken at some other time, then it will not be possible to detect the wanted signal since the result will be the “noise” between the peaks.
A technique known in the prior art is to calculate the detection algorithm result over a sliding window. A generic example is given in FIG. 2. The received signal is passed through a number of signal processing stages 201, of which one is a Barker correlator 202, to generate a sequence of first correlation values. These values are passed to a delay line 203, with taps 204 at symbol intervals. In the example shown, the sampling rate is assumed to be 22 MHz meaning that each symbol interval involves 22 delay stages 205. A combiner 206 performs a combining function that generates the output. In a simple example, the Barker correlator 202 is followed by a calculation of the magnitude of the output of the signal processing function 201, and the combining function is simply the sum of the magnitudes at each tap.
The sliding-window method calculates a continuous result for a window of time stretching back from each new input sample. This means that signals starting at any point in time can be detected with equal chance of success. Since the detection block is also guaranteed to capture the whole sequence from the start to the end of the window period, it is possible to use more information about the properties of the sequence in the detection algorithm.
The flexibility of the sliding-window method comes however at significant hardware cost. In a typical IEEE 802.11b detection block, the detection period is 15 μs, implying up to 330 delay stages at a sampling rate of 22 MHz. Each delay stage will consist of a row of N storage elements, where N is the word width of the intermediate detection result. For instance, if an 8-bit representation is used for the intermediate result, the total number of flip-flops required is 2640; with each flip-flop corresponding in size to about 8 combinational gates, this is a gate-equivalent of 21 kgates, which is comparable in size to an ARM 7 processor.